﻿
namespace SwtorCalculator {
    using System;

    /// <summary>
    /// class.pc.smuggler / class.pc.spy(IA) - cun_gives_ranged
    ///     class.pc.advanced.scoundrel / .advanced.operative - cun_gives_ranged - cun_gives_heal
    ///     class.pc.advanced.gunslinger / .advanced.sniper - cun_gives_ranged
    /// </summary>
    internal class SmugglerAgentStats : Stats {
        /// <summary>
        /// Initializes a New Instance of the SmugglerAgentStats Class
        /// </summary>
        internal SmugglerAgentStats() : this( 50 ) { }

        /// <summary>
        /// Initializes a New Instance of the SmugglerAgentStats Class
        /// </summary>
        /// <param name="lvl">Character Level</param>
        /// <param name="dw">Can Character Dual Weild</param>
        internal SmugglerAgentStats( int lvl ) {
            Level = lvl;
            ArmorStat = 0;
        }

        /// <summary>
        /// Players base Aim
        /// (Weak Stat)
        /// </summary>
        internal override int AimBase {
            get { return getWeakStat(); }
        }

        /// <summary>
        /// Players base Cunning
        /// (Primary Stat)
        /// </summary>
        internal override int CunningBase {
            get { return getPrimaryStat(); }
        }

        /// <summary>
        /// Characters Bonus Range Damage
        /// </summary>
        internal override int RangeBonusStats {
            get { return ( int )Math.Floor( ( double )( AimTotal + CunningTotal ) * BONUS_DMG_MOD ); }
        }

        /// <summary>
        /// Characters Range Crit Chance from Stats
        /// </summary>
        internal override double RangeCritStats {
            get { return Math.Round( ( double )( AimTotal + CunningTotal ) / BONUS_CRIT_MOD / 10000, 4 ); }
        }
    }
}
